import { createApp } from 'vue'

import pinia from './stores'
import App from './App.vue'
import router from './router'

// 1. 引入你需要的组件
// import { Button as VanButton } from 'vant'
// 2. 引入组件样式
import 'vant/lib/index.css'

import './styles/main.scss' // 全局样式 方便覆盖组件内的样式

import 'virtual:svg-icons-register' // 最后一步 到这意味着你的html中有一个大精灵图了

const app = createApp(App)

app.use(pinia) // 安装pinia
app.use(router) // 安装路由

// app.use(VanButton) // 全局注册组件

app.mount('#app')

// let num: number = 99
// num = '100'

/* 
  项目中有两个ts做类型检查
  1. vscode内置了一个ts做检查(关了)
  2. volar也在做ts检查

  开启ts托管模式 关闭vscode中的ts 让volar去ts检查
*/

/* 
  实际开发中, 写完代码后 不可能直接提交的
  因为会有可能写出有问题的代码 
  
  => 需要开启一个哈士奇配置(在真正提交之前 会检查代码 不合格的代码直接中断提交)

  哈士奇进阶配置 => 你的哈士奇应该只检查你自己这次提交修改的文件代码 => 增量(改动的部分)检查 => 效率高 速度快

  默认情况下 你的哈士奇 就只是哈士奇 只会检查代码 不聪明 => 全量检查(整个项目中所有文件都得检查) => 速度慢
*/

/* 
  整理目录: 
  1. 清空assets components stores  views
  2. router/index.ts 去掉路由规则 去掉一个页面
  3. 清空 App.vue  只留下div
  4. 去掉main.ts中的样式导入

  5. 新建 composable icons services styles types utils 文件夹
  6. styles下新建main.scss => 在main.ts中导入 =>  pnpm add sass -D
*/

/* 
  package.json  里面配置了脚本命令  生产依赖 开发依赖
  依赖前面的版本号 ^ 固定主版本号     ~ 固定主版本号 次版本号

  lock文件记录了真实下载的包的具体的版本号
*/

// console.log(document.title)

// import { type Consult } from '@/types/consult'

// const obj: Consult = {
//   illnessType: 0,
//   patientId: '007',
//   type: 2
// }

// obj

/* 
  枚举类型: 
    为什么:
      为了解决 数字类型的联合类型 导致的页面逻辑不直观的问题

    是什么:
      表示一组明确可选的值 页面逻辑很直观 很清晰

    怎么做(语法): 
      type Xx = {}
      interface Xxx {}

      enum Xxx {}

    注意事项: 
      1 如果值本身是0开始的自增序列 可以直接省去所有值
      2 如果希望从5开始 只需要第一个提供初始值5  自动自增
      3 枚举不是定义在d.ts文件中 由于d.ts文件是纯类型文件 只能放类型代码 不能放逻辑代码 也不能放值
      4 枚举已经不是纯类型 有值的概念 导入时不需要 type关键字了
      5 枚举的本质 在于有几个值 将来使用枚举 使用的也是值本身

*/

// import { ConsultType, Gender2 } from '@/enums'
// const num: ConsultType = ConsultType.Yi
// num

// type Xxx = 1 | 2 | 3
// const num2: Xxx = 2
// num2

/* 
  之前写过一个性别的类型  0 女 1 男
*/
// type Gender = 0 | 1
// const gender: Gender = 0

// gender

// const gender2: Gender2 = Gender2.nan
// gender2

/* 
  已知: 
   开发环境: VITE_APP_CALLBACK_URL = http://localhost:5173
   生产环境: VITE_APP_CALLBACK_URL = http://localhost:4173
*/

console.log(import.meta.env.VITE_APP_CALLBACK_URL)
console.log(import.meta.env.DEV) // 内置的一个环境变量 true 表示开发  false 生产
